package com.itany.corejava.code08_常用类.string;

import java.util.Scanner;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年11月14日 9:59
 */
public class Zuoye2 {
    private static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        System.out.println("*****");
        // test01();
        // test02();
        // test03();
        // test04();
        test05();
    }

    //在控制台输入一个电子邮箱，判断邮箱
    // 邮箱的开头是数字,不能以0开头，邮箱其他字符可以是数字、字母、下划线、邮箱必然包含@，@符号后面可以是数字、字母、下划线
    // 邮箱的结尾可以是.com,也可以是.com.cn
    public static void test01() {
        System.out.print("请输入一个电子邮箱:");
        String email = sc.next();
        String reg = "[1-9]\\w+@\\w+\\.com(\\.cn)?";
        if (email.matches(reg)) {
            System.out.println("邮箱格式正确");
        } else {
            System.out.println("邮箱格式不正确");
        }
        test01();
    }

    //提示用户输入用户名
    // 判断用户名的格式是否正确
    // 用户名由数字、字母、下划线、点、横向组成
    // 只能以数字或者字母开头和结尾
    // 长度在6-20
    public static void test02() {
        System.out.print("请输入一个用户名:");
        String username = sc.next();
        String reg = "[0-9a-zA-Z][0-9a-zA-Z._-]{4,18}[0-9a-zA-Z]";
        if (username.matches(reg)) {
            System.out.println("用户名格式正确");
        } else {
            System.out.println("用户名格式不正确");
        }
        test02();
    }


    //提示用户输入密码
    // 判断密码是不是符合要求
    // 密码可以是纯数字，也可以是纯字母，也可以是数字字母组合
    // 6-10位
    public static void test03() {
        System.out.print("请输入一个密码:");
        String password = sc.next();
        String reg = "[0-9a-zA-Z]{6,10}";
        if (password.matches(reg)) {
            System.out.println("密码格式正确");
        } else {
            System.out.println("密码格式不正确");
        }
        test03();
    }

    //分别提示用户输入两个字符串，计算第二个字符串在第一个字符串中出现的次数
    // 如：第一个字符串abcndsabcsds
    // 第二个字符串abc

    // 那么abc出现了2次

    public static void test04() {
        System.out.print("请输入第一个字符串:");
        String s1 = sc.next();
        System.out.print("请输入第二个字符串:");
        String s2 = sc.next();
        if (s1.length() >= s2.length()) {
            int count = 0;//个数
            int index = 0;//索引
            while ((index = s1.indexOf(s2)) != -1) {//在s1中查找s2首次出现的索引并将索引赋值给index，并且判断index!=-1,说明s1中确实存在s2
                count++;//1   2
                s1 = s1.substring(index + s2.length());//index=0   s1.substring(3)   ndsabcsds   s1.substring(6) s1="sds"
            }
            System.out.println(s2 + "出现在" + s1 + count + "次");

        } else {
            System.out.println("第二个字符串没有出现在第一个字符串中");
        }

    }

    // 写一个正则表达式,来验证电话号码
    // 有区号，区号可能是3-4位，区号以0开头
    // 电话号码是7-8位，以8开头
    // 格式如下:025-89765432
    public static void test05() {
        System.out.print("请输入一个电话号码:");
        String phone = sc.next();
        String reg = "0\\d{2,3}-8\\d{6,7}";
        if (phone.matches(reg)) {
            System.out.println("电话格式正确");
        } else {
            System.out.println("电话格式不正确");
        }
        test05();
    }
}